La entrada estándar de un programa es la forma típica que tienen los programas de obtener datos del exterior. Típicamente, un programa obtiene unos datos, hace unos cálculos y produce unos resultados. La entrada estándar, normalmente, es el teclado.
Las instrucciones que me permiten obtener datos por el teclado tienen la forma:
cin >> a >> b >> c;
Se dice que esta es una "instrucción de lectura" y también que "leemos los valores de a, b y c". En estas instrucciones de lectura hay que empezar poninendo cin y luego hay que indicar los nombres de las variables donde queremos almacenar los datos que escriba el usuario, separados por el operador >>. Al contrario que las declaraciones de variables, no es posible escribir esto:
cin >> a, b, c; // Esto está MAL!
O sea, es necesario escribir el operador >> cada vez:
cin >> a >> b >> c; // correcto.
En el ejemplo anterior las variables son a, b y c. De todas formas, sin saber de qué tipo son las variables no podemos determinar qué hará la instrucción. Si la declaración de estas variables fuera:
int a; bool b; char c;
Entonces podemos saber que cin >> a >> b >> c; leerá un entero, que guardará en a, luego un Booleano, que guardará en b y finalmente un caracter, que guardará en c.
Una instrucción de lectura como cin >> a >> b >> c lo que hace realmente es:
Si lo que se ha escrito es insuficiente para rellenar todas las variables de la instrucción, se repite el proceso. Si hay datos suficientes, se rellenan las variables y el programa continúa.
En este sentido, una instrucción:
cin >> a;
es como "asignar" a a un valor que proviene de lo que escribe el usuario. En realidad la lectura descarta el valor que hubiese en a previamente, igual que la asignación.
Haz un programa que te pide tu nombre y tu edad (supongamos que te llamas Pau y tienes 35 años). Luego muestra por pantalla el siguiente mensaje:
Hola! Te llamas Pau y tienes 35 años. Ah, y eres un gran programador.
En función de tu edad, esto quizás te levante la moral.
Piensa cuál es la salida exacta del siguiente programa en función del valor de n sin compilarlo ni ejecutarlo:
#include <iostream> using namespace std; int main() { int n; cin >> n; cout << " n << " << " " << n << endl; }
En preparación